<?php
/**
 *  AppController é o controller usado como base para todos os outros controllers
 *  da aplicação. Estando na biblioteca, é utilizado somente quando não há outro
 *  AppController definido pelo usuário.
 *
 *  @license   http://www.opensource.org/licenses/mit-license.php The MIT License
 *  @copyright Copyright 2008-2009, Spaghetti* Framework (http://spaghettiphp.org/)
 *
 */
ob_start();
session_start();

class AppController extends Controller
{
    /**
     * @TODO: Carregar todos os models do sistema aqui
     * @access public
     * @var array
     */
    public $uses = array('Campanha', 'Campo','Lead','CampanhaCampo',
		         'LeadStatus', 'Usuario', 'Cliente',
			 'Compromisso', 'Origem', 'Comentario','LogLeadControl','Plano');
    /**
     * @access public
     * @var array
     */
    public $components = array('Upload');

    /**
     * Método executado após a execução da action e antes da renderização da view
     * @access public
     */
    public function beforeRender()
    {
        if(isset($_SESSION['usua_id']) && ($_SESSION['cliente_id']!=0))
        {
            //verificar se é preciso ficar aqui isso ou só em lead_controller
            $this->setDataFiltro();
        }
    }

    /**
     * Adicionar models a lista $uses
     * @access public
     * @param mixed $pmValor String ou array com os valores para serem adicionados
     */
    public function setUses($pmValor)
    {
        if(is_array($pmValor))
        {
            $this->uses = array_merge($this->uses,$sValor);
        }
        else if(is_string($pmValor))
        {
            $this->uses = array_merge($this->uses, array($pmValor));
        }

        $this->loadModels();
    }

    /**
     * Salva as datas na sessão para serem recuperadas pelo calendário de filtros
     * @access private
     */
    private function setDataFiltro()
    {
        if((!isset($_SESSION['data1'])) || ($_SESSION['data1'] == ""))
        {
            if(trim($this->param('data1'))!='')
            {
                $_SESSION['data1'] =  str_replace("-","/",$this->param('data1'));
            }
            else
            {
                $_SESSION['data1'] = date('d/m/Y', strtotime('-30 days'));
            }

            if(trim($this->param('data2'))!='')
            {
                $_SESSION['data2'] = str_replace("-","/",$this->param('data2'));
            }
            else
            {
                $_SESSION['data2'] = date('d/m/Y');
            }
        }
        else
        {
            if(trim($this->param('data1'))!='')
            {
                $_SESSION['data1'] =  str_replace("-","/",$this->param('data1'));
            }

            if(trim($this->param('data2'))!='')
            {
                $_SESSION['data2'] = str_replace("-","/",$this->param('data2'));
            }
        }
    }

    public function difData($psDataMaior, $psDataMenor, $pbTime=false)
    {
        // Comportamento movido para core/utils.php
        return difData( $psDataMaior, $psDataMenor, $pbTime );
    }

    public function inverterData($psData, $psPara, $pbTemHora=false)
    {
        // Comportamento movido para core/utils.php
        return inverterData( $psData, $psPara, $pbTemHora );
    }
}

?>
